package com.lifp.service;

import org.springframework.integration.annotation.MessagingGateway;
import org.springframework.integration.mqtt.support.MqttHeaders;
import org.springframework.messaging.handler.annotation.Header;

/**
 * @author lifp
 * @date 2023/10/20
 */
@MessagingGateway(defaultRequestChannel = "mqttOutboundChannel")
public interface IotMqttGateway {
    /**
     * 向默认的 topic 发送消息
     * @param payload
     * @return void
     * @author lifp
     * @date 2023/10/20
     **/
    void sendMessage2Mqtt(String payload);

    /**
     * 向指定的 topic 发送消息
     * @param payload 消息
	 * @param topic 主题
     * @return void
     * @author lifp
     * @date 2023/10/20
     **/
    void sendMessage2Mqtt(@Header(MqttHeaders.TOPIC) String topic,String payload);

    /**
     * 向指定的 topic 发送消息，并指定服务质量参数
     * @param topic 主题
	 * @param qos qos
	 * @param payload 消息
     * @return void
     * @author lifp
     * @date 2023/10/20
     **/
    void sendMessage2Mqtt(@Header(MqttHeaders.TOPIC) String topic, @Header(MqttHeaders.QOS) int qos, String payload);
}
